In the art of computing, it is desirable to encrypt data stored on persistent storage media, such as hard disk drives. Encryption protects the data from unauthorized access, and theft of the media upon which the data is stored.
Data is encrypted using encryption keys, and it is desirable periodically rotate encryption keys. For data that is already encrypted, the key rotation process comprises reading data encrypted with the old encryption key from the storage media, decrypting the data using the old key, encrypting the data with the new key, and writing the data encrypted with the new key back to the storage media.
In the art of computing, it is also desirable to provide redundancy so that operation of a computer system can continue after the failure of a component. One method known in the art for providing storage media redundancy is to mirror the data. In a mirrored configuration, two storage devices are provided, and the same data is stored on each device. If one device fails, the data is still available on the other device.
To enhance storage media redundancy further, it is known in the art to provide two or more I/O managers for each storage device. In the event that one of the I/O managers fails, mirrored operation can continue since each storage device continues to have at least one functioning I/O manager.
In systems having high availability and redundancy, it is desirable to have the ability to perform key rotation while the system continues normal operation. However, it is challenging to rotate keys during normal operation with mirrored storage devices having redundant I/O managers. During key rotation, some of the data on the storage device is encrypted with the old encryption key, and other data is encrypted with the new encryption key, and care must be taken to ensure that data is read and written with the proper key.